<?php

//include_once MODEL_PATH . 'usuarios.php';
//include_once MODEL_PATH . 'pedidos.php';

/**
 * Clase controladora desarrollada para permitir visualizar un ejemplo funcional del framework
 * @author Robert babilonia <bobbabilon2@gmail.com>
 * 
 */
class ExampleController extends CommanderController {

    /**
     * Metodo por defecto
     * 
     */
    public function index() {

        //se envia la respeusta a la vista con el metodo render
        $this->render("index");
    }

    /**
     * Metodo para mostrar una plantilla html con uso de css
     * 
     */
    public function plantilla() {

        $this->render("plantilla");
    }

    /**
     * Renderiza un formulario de ejemplo
     */
    public function estudiantes() {

        $this->render("estudiantes");
    }

    /**
     * Permite calcular el promedio de 2 estudiantes y obtener el mayor de ellos
     */
    public function promedio() {

        //arreglo de datos de los estudiantes
        $estudiante1 = $_POST["estudiante1"]; // $_GET
        $estudiante2 = $_POST["estudiante2"];

        //notas de los estudiantes
        $notas1 = $estudiante1["nota"]; // $_GET
        $notas2 = $estudiante2["nota"];


        $promedio1 = 0;
        $promedio2 = 0;
        define("CANTIDAD_NOTAS", 5);
        //$cantidad_notas=5;
        $suma = 0;

        foreach ($notas1 as $valor) {

            if (is_numeric($valor)) {// se verifica que el valor sea numerico
                $suma+= floatval($valor);
            }
        }

        $promedio1 = $suma / CANTIDAD_NOTAS;
        $suma = 0;
        foreach ($notas2 as $valor) {

            if (is_numeric($valor)) {// se verifica que el valor sea numerico
                $suma+= floatval($valor);
            }
        }

        $promedio2 = $suma / CANTIDAD_NOTAS;


        /**
         * La comunicacion y envio de informacion entre el controlador y la 
         * vista se hace con el envio al metodo render de un arreglo asociativo
         * que contiene los datos deseados
         * 
         */
        $vars["promedio2"] = $promedio2;
        $vars["promedio1"] = $promedio1;
        $vars["estudiante1"] = $estudiante1;
        $vars["estudiante2"] = $estudiante2;

        /**
         * Tambien se puede hacer:
         * 
         * $vars=array("variable1"=>valor, "variable2"=>valor2,....,"variableN"=>"valorN");
         * 
         */
        //envio de respuesta a la vista junto con los datos a usar
        $this->render("promedio", $vars);
    }

    /**
     * Vista con instrucciones previas para poder ejecutar el ejemplo del 
     * metodo conexion
     * 
     */
    public function previo() {

        $this->render("previo");
    }

    /**
     * Metodo de ejemplo, realiza una conexion a la base de datos para consultar 
     * registros en una tabla
     */
    public function conexion() {

        /**
         * Ejemplo de creacion de una variable de sesion 
         */
        CommanderSession::register("usuario", "Robert Babilonia");

        /**
         * Forma de verificar la existencia o no de una variable se sesion
         * 
         */
        if (CommanderSession::exist('usuario')) {
            /**
             * Forma de acceder a una variable de session
             * 
             */
            $vars["usuario"] = CommanderSession::get("usuario");
        } else {

            $vars["usuario"] = 'No identificado';
        }



        $usuario = new Usuarios();

        $vars["retorno"] = $usuario->find("all", array("order" => "id"));

        $vars["campos"] = array("Identificador" => "id", "Usuario" => "login", "Nombre" => "nombre", "Clave" => "password", "Correo" => "email", "Cedula" => "cedula", "Telefono" => "telefono");


        $this->render("conexion", $vars);
    }

    /**
     * Metodo para renderizar la plantilla basada en Blueprint
     */
    public function blueprint() {


        $this->render("blueprint");
    }

}

?>